package utils

import (
	"fmt"
	"github.com/gocolly/colly/v2"
	"strconv"
)

// 专业标签
const MajorTagNameChild = "div"

const MajorTagKeyChild = "class"

const MajorTagValueChild = "ch-tab clearfix"

// 专业请求地址
const MajorPrefixURL = "https://yz.chsi.com.cn/sch/listYzZyjs--schId-"
const MajorMiddlefixURL = ",categoryId-"
const MajorSuffixURL = ".dhtml"

/**
**
				<div class="ch-tab clearfix">

                <div class="tab-item js-tab"><a href="javascript:;">教育学</a></div>

                <div class="tab-item js-tab"><a href="javascript:;">医学</a></div>

                <div class="tab-item js-tab"><a href="javascript:;">文学</a></div>

                <div class="tab-item js-tab"><a href="javascript:;">工学</a></div>

                <div class="tab-item js-tab"><a href="javascript:;">法学</a></div>

                <div class="tab-item js-tab"><a href="javascript:;">哲学</a></div>

                <div class="tab-item js-tab"><a href="javascript:;">经济学</a></div>

                <div class="tab-item js-tab"><a href="javascript:;">历史学</a></div>

                <div class="tab-item js-tab"><a href="javascript:;">理学</a></div>

                <div class="tab-item js-tab"><a href="javascript:;">管理学</a></div>

        </div>
**/

func GetRequestMajorValue(schId int64, catId int64) {
	// 创建一个新的 Collector
	c := colly.NewCollector()
	//var major []string

	// 定义 OnHTML 回调函数，处理匹配到的元素
	c.OnHTML("body > div.main-wrapper > div.container > div:nth-child(4) > div.ch-tab.clearfix", func(e *colly.HTMLElement) {
		// 处理选中的元素
		fmt.Println("院系栏：" + e.Text)
	})

	c.OnHTML("", func(e *colly.HTMLElement) {
		// 处理选中的元素
		fmt.Println("专业获取中：" + e.Text)
	})

	// 错误处理回调
	c.OnError(func(_ *colly.Response, err error) {
		fmt.Println("Something went wrong:", err)
	})

	// 启动爬虫并访问 URL
	c.Visit(MajorPrefixURL + strconv.Itoa(int(schId)) + MajorMiddlefixURL + strconv.Itoa(int(catId)) + MajorSuffixURL)

	c.OnResponse(func(response *colly.Response) {
		if response.StatusCode != 200 {
			fmt.Println("Failed to load page, status code:", response.StatusCode)
		}
	})
	//print(major)
}

func Distinct(str []string) {
	//// 假设这是你的字符串数组
	//strArray := []string{"apple", "banana", "apple", "orange", "banana", "pear"}

	// 使用map来存储已经出现过的字符串
	seen := make(map[string]bool)
	var uniqueArray []string

	// 遍历数组，使用map进行去重
	for _, v := range str {
		if _, ok := seen[v]; !ok {
			seen[v] = true
			uniqueArray = append(uniqueArray, v)
		}
	}

	// 打印去重后的数组
	fmt.Println("Unique strings:", uniqueArray)
}
